package com.kexio.enterprise.observability.metrics.domain;

import java.time.LocalDateTime;

/**
 * 系统指标
 * 
 * @author Kexio
 * @since 1.0.0
 */
public class SystemMetrics {
    private double cpuUsage;
    private double memoryUsage;
    private long memoryTotal;
    private long memoryUsed;
    private long memoryFree;
    private double diskUsage;
    private long diskTotal;
    private long diskUsed;
    private long diskFree;
    private int threadCount;
    private int activeThreadCount;
    private long uptime;
    private LocalDateTime startTime;

    // Getters and Setters
    public double getCpuUsage() { return cpuUsage; }
    public void setCpuUsage(double cpuUsage) { this.cpuUsage = cpuUsage; }
    
    public double getMemoryUsage() { return memoryUsage; }
    public void setMemoryUsage(double memoryUsage) { this.memoryUsage = memoryUsage; }
    
    public long getMemoryTotal() { return memoryTotal; }
    public void setMemoryTotal(long memoryTotal) { this.memoryTotal = memoryTotal; }
    
    public long getMemoryUsed() { return memoryUsed; }
    public void setMemoryUsed(long memoryUsed) { this.memoryUsed = memoryUsed; }
    
    public long getMemoryFree() { return memoryFree; }
    public void setMemoryFree(long memoryFree) { this.memoryFree = memoryFree; }
    
    public double getDiskUsage() { return diskUsage; }
    public void setDiskUsage(double diskUsage) { this.diskUsage = diskUsage; }
    
    public long getDiskTotal() { return diskTotal; }
    public void setDiskTotal(long diskTotal) { this.diskTotal = diskTotal; }
    
    public long getDiskUsed() { return diskUsed; }
    public void setDiskUsed(long diskUsed) { this.diskUsed = diskUsed; }
    
    public long getDiskFree() { return diskFree; }
    public void setDiskFree(long diskFree) { this.diskFree = diskFree; }
    
    public int getThreadCount() { return threadCount; }
    public void setThreadCount(int threadCount) { this.threadCount = threadCount; }
    
    public int getActiveThreadCount() { return activeThreadCount; }
    public void setActiveThreadCount(int activeThreadCount) { this.activeThreadCount = activeThreadCount; }
    
    public long getUptime() { return uptime; }
    public void setUptime(long uptime) { this.uptime = uptime; }
    
    public LocalDateTime getStartTime() { return startTime; }
    public void setStartTime(LocalDateTime startTime) { this.startTime = startTime; }
}
